package fr.afcepf.ai89.lagrandebouffe.business;
import java.util.List;

import fr.afcepf.ai89.lagrandebouffe.entity.Plat;

/**
 * Définition des méthodes metier de l'application.
 * <code>
 * <strong>L'application doit savoir :</strong>
 * <ul>
 * <li>
 * ajouter un {@link Plat} qui n'existe pas déjà dans la DBB.
 * </li>
 *  * <li>
 * rechercher {@link Plat} dans la DBB.
 * </li>
 * <li>
 * supprimer {@link Plat} de la BDD.
 * </li>
 * </ul>
 * </code>
 * @author stagiaire
 *
 */
public interface IBusinessPlat {

    /**
     * <code>
     * <strong>Méthode pour :</strong>
     * <ul>
     * <li>
     * ajouter un {@link Plat} qui n'existe pas déjà dans la DBB.
     * </li>
     * @param lePlat - {@link Plat}
     * @return <li><strong> la clé primaire </strong><br/>
     * si le {@link plat} est bien ajouté.</li>
     * <li>null<br/>
     * si le {@link Plat existant possède le meme libelle</li>
     * </ul>
     * </code>
     */
    Integer add(Plat lePlat);

    /**
     * <code>
     * <strong>Méthode pour :</strong>
     * <ul>
     * <li>
     * supprimer un {@link Plat} dans la DBB.
     * </li>
     * @param lePlat - {@link Plat}
     * @return <li><strong> true </strong><br/>
     * si le {@link plat} est bien supprimé.</li>
     * <li>false<br/>
     * si le {@link Plat} n'a pas été supprimé</li>
     * </ul>
     * </code>
     */
    boolean delete(Plat lePlat);

    /**
     * <code>
     * <strong>Méthode pour :</strong>
     * <ul>
     * <li>
     * trouver un {@link Plat} dans la DBB.
     * </li>
     * @param lePlat - {@link Plat}
     * @return <li><strong> Liste </strong><br/>
     * de plat {@link plat} s'il est bien trouvé.</li>
     * <li>vide<br/>
     * si le {@link Plat} n'a pas été trouvé</li>
     * </ul>
     * </code>
     */
    List<Plat> find(Plat lePlat);

}
